schemes['computer_science'] = {
    //三个学科 其中第一个是主学科 后两个是相关学科
    subj: ['计算机科学', '哲学', '数学'],
    //至少1个有关第一个学科的 字面上可以解释为物理结构的词
    stru: ['栈', '树', '二叉树', '红黑树', 'Fibonacci堆', '仙人掌'],
    //至少9个有关第一个学科的名人名言
    cele: [
        ['马丁·福勒', '傻瓜都能写计算机能看懂的代码。好程序员写人能看懂的代码。'],
        ['西恩·帕伦特', '好的代码，短小、简洁，并且匀称 - 而真正的挑战在于如何做到。'],
        ['史蒂夫·迈克康奈尔', '好的代码本身就是最好的文档。当你打算加注释的时候，问问自己“我如何改善代码以至于不需要注释？”'],
        ['林纳斯·托瓦兹', '低水平程序员总在考虑代码，高水平程序员总在考虑数据结构及其之间的关系。'],
        ['菲尔·卡尔顿', '计算机科学中仅存在两件难事：缓存失效和命名。'],
        ['艾伦·J·佩利', '有两种方法可以编写无错误的程序；只有第三种方法有效。'],
        ['大卫·韦勒', '任何计算机科学领域的问题都能通过增加一个间接层来解决。然而这通常会带来其他问题。'],
        ['尼尔·福特', '人生苦短，切莫手动分配内存。'],
        ['哈罗德·埃布尔森', '代码是为人类阅读而写，只是顺便能被机器执行罢了。'],
        ['林纳斯·托瓦兹', '懦夫才用磁带备份：真男人把重要的东西传到ftp，然后世界会帮他备份。'],
        ['林纳斯·托瓦兹', '软件就像性，免费的比花钱的好得多。'],
        ['林纳斯·托瓦兹', '“回归测试”？那是什么东西？代码能编译就是好的，如果能运行，那就是完美的。'],
        ['林纳斯·托瓦兹', '技术标准就是纸。我每天都用纸擦屁股。这就是这些纸的价值所在。'],
        ['林纳斯·托瓦兹', '“可移植性”的概念是为那些不会写新程序的人准备的。'],
    ],
    //至少3个有关第一个学科的思想（主义）
    prin: ['构造', '直觉', '逻辑'],
    //至少3个有关第一个学科的性质
    prop: ['有限', '离散', '无后效'],
    //至少6个有关第一个学科的概念
    conc: ['P=NP猜想', 'AC自动机', '轮廓动态规划', '模拟退火', '哈密顿通路的证明', '最大流最小割定理', '网络流', '最近公共祖先', '启发式迭代加深'],
    init: function () {
        shuffle(this.stru);
        shuffle(this.cele);
        shuffle(this.prin);
        shuffle(this.prop);
        shuffle(this.conc);
    }
}
